<?php


namespace Validator;

/**
 * user验证器
 * Class UserValidator
 * @package Validator
 */
class UserValidator extends BaseValidator
{

    public function __construct()
    {
        $fields = [
            'phone' => '手机号码'
        ];
        $ruleMsgTemplate = [
            'isAuth'  => '10107',
            'isYstAuth'  => '10107',
            'isBindPhone'  => '10108',
            'isBindPaypwd'  => '10311'
        ];

        $this->fields = array_merge($this->fields, $fields);
        $this->ruleMsgTemplate = array_merge($this->ruleMsgTemplate, $ruleMsgTemplate);
    }


    /**
     * 是否完成实名认证(包括云商通实名和后台审核),前台一般判断建议用这个
     * 备注：因为这里涉及多个field的判断，因此不用value的值，直接取$validationData的值判断
     * @param $value
     * @param string $condition
     */
    protected function isAttest($value, $condition = '')
    {
        $validationData = $this->validationData;
        if(isset($validationData['bizState']) AND $validationData['bizState'] == 'SUCCESS'){
            // 1.云商通已实名
            if(!empty($validationData['yst_user_type'])){
                // 2.后台已审核
                if($validationData['yst_bind_phone'] == 1){
                    return true;
                }
            }
        }
        return false;
    }

    /**
     * 是否完成云商实名认证
     * @param $value
     * @param string $condition
     * @return bool
     */
    protected function isYstAttest($value, $condition = '')
    {
        return $value == 'SUCCESS' ? true : false;
    }

    /**
     * 是否完成支付授权
     * @param $value
     * @param string $condition
     * @return bool
     */
    protected function isBindPhone($value, $condition = '')
    {
        return $value == 1 ? true : false;
    }

    /**
     * 是否完成设置支付密码
     * 备注：企业不需要设置支付密码
     * @param $value
     * @param string $condition
     */
    protected function isBindPaypwd($value, $condition = '')
    {
        $validationData = $this->validationData;
        if(isset($validationData['yst_user_type']) ){
            // 企业
            if( $validationData['yst_user_type'] == 2){
                return true;
            }elseif ($validationData['yst_user_type'] == 1){
                // 个人
                if(isset($validationData['yst_bind_paypwd']) AND $validationData['yst_bind_paypwd'] == 1){
                    return true;
                }
            }
            return false;
        }
    }






}